const qs=require('querystring')
const express=require('express')
const app=new express()
const router=require('./router.js')
//5大类中间件
	// 1.应用级别的中间件 app.use app.post app.get 中间件绑定到app的实例上
	// 2.路由级别的中间件 绑定express.Router的中间件 Router.use
	// 3.错误级别的中间件 function(err,req,rep,next) 注册在所有路由之后
	// 4.内置中间件 static  express.json urlencoded
	// 5.自定义中间件
		// 定义中间件
		// 监听req的data事件
		// 监听req的end事件
		// querystring进行解析请求体数据 处理查询字符串
		// 挂载到req.body 

// 自定义中间件挂载为模块

//自定义中间件		
app.use(function(req,rep,next){
	let str=''
	req.on('data',(chunk)=> {
		str+=chunk
		console.log(chunk)
	})
	req.on('end',(chunk)=> {
		console.log(qs.parse(str))
		req.body=qs.parse(str)
		next()
	})
})
app.get('/query',function(req,rep) {
	console.log(req.body)
	throw '数据格式错误'
	rep.send({
		body:req.body
	})
})
//错误处理中间件
app.use((err,req,rep,nxet)=> {
	rep.send({
		err1:err
	})
	next()
})
//路由组件
app.use(router)
app.use('/api',router)
app.listen(8081,function() {
	console.log('127.0.0.1')
})
//js进行错误处理
//cors 与 jsonp